【小ネタ】スクリーンショットをカレントへ移動する処理をちょっと深掘り
こんにちはCX事業本部のさかじです。
ブログを書いているとスクリーンショットを取ることが多いのですが、毎回作業フォルダへ移動するのが面倒です。そのスクリーンショットをカレントディレクトリへコピーするスクリプトを作り、わからない処理を少し深掘りしてみました。
Pythonは今までたまにしか書いていなかったため、Pythonと仲良くできていなかったので個人企画として簡単なスクリプトを作ってみる、「はて?」と思ったことをちょっとだけ深掘りしてみたいと思います。
環境
- MacBook Pro(macOS Mojave 10.14.6)
前提条件
- スクリーンショットが保存されるフォルダは
~/Pictures
に変更 - 本スクリプトがあるフォルダにパスは通してある
ソース
色々サイトを巡って作成したスクリプトです。
ちょっと深掘り
__name__
って何?
printしてみると
$ python3 Python 3.7.6 (default, Dec 30 2019, 19:38:28) [Clang 11.0.0 (clang-1100.0.33.16)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> print(__name__) __main__ >>>
__main__
と表示されます。
Pythonのドキュメントを確認したところ
definition.__name__ クラス、関数、メソッド、デスクリプタ、ジェネレータインスタンスの名前です。
ちょっと試してみましょう。
bar.py
def func1(): print(__name__)
foo.py
import bar def foo(): print(__name__) foo() bar.func1()
- 実行結果
$ python foo.py __main__ bar
参考サイト
https://docs.python.org/ja/3/reference/datamodel.html
最後に
if __name__ == '__main__':
は現在動作している関数などが__main__
か?を判定しているのですね。classとして作成してもこの判定はあれば単体で動かしてテストコードを書いておくと簡易的に単体テストできそうですね。